var fs = require('fs');
var dbpath = './db.json';

// 获取学生信息
exports.find = function (callback) {
    fs.readFile(dbpath, 'utf-8', function (err, data) {
        if (err) {
            return callback(err);
        }
        callback(null, JSON.parse(data).students);
    })
}
//根据ID获取学生信息
exports.findbyid = function (id,callback) {
    fs.readFile(dbpath, 'utf-8', function (err, data) {
        if (err) {
            return callback(err);
        }
        var students= JSON.parse(data).students;
        var stu = students.find(function(item){
            return parseInt(item.id) === parseInt(id); 
        })
         callback(null,stu); 
    })
}

// 添加保存学生信息
exports.save = function (student, callback) {
    fs.readFile(dbpath, 'utf-8', function (err, data) {
        if (err) {
            return callback(err);
        }
        //将数组中的数据转换成对象形式
        var students = JSON.parse(data).students;
        // 设置传入的学生的序号
        if(students.length!==0){
            student.id = parseInt(students[students.length - 1].id) + 1;
        }else{
            student.id =1;
        }
        student.id = parseInt(student.id)
        students.push(student);
        // 将新的学生总体数据转换为字符串形式
        var filedata = JSON.stringify({
            students: students
        })
        // 新的全体学生的数据写入数据库里
        fs.writeFile(dbpath, filedata, function (err) {
            if (err) {
                return callback(err);
            }
            callback(null);
        });
    })
}



// 更新学生信息
exports.update = function (thestudent, callback) {
    fs.readFile(dbpath, 'utf-8', function (err, data) {
        if (err) {
            return callback(err);
        }
        var students = JSON.parse(data).students;
        //找到对应学生原有的信息
        var stu = students.find(function(item){
            return parseInt(item.id) === parseInt(thestudent.id)
        })
        stu.id = parseInt(stu.id);
        // 将原有信息替换
        for(var key in thestudent){
            stu[key] = thestudent[key]
        }
        // 转换成字符串后写入数据库
        var filedata = JSON.stringify({
            students: students
        });
        fs.writeFile('./db.json', filedata, function (err) {
            if (err) {
                return callback(err);
            }
            callback(null);
        });
    })
};


// 删除学生信息
exports.delete = function (id,callback) {
    fs.readFile(dbpath, 'utf-8', function (err, data) {
        if (err) {
            return callback(err);
        }
        var students = JSON.parse(data).students;
        // 获取删除的学生信息的id
        var deleteid = students.findIndex(function(item){
            return parseInt(item.id) === parseInt(id);
        })
        // 删除学生信息
        students.splice(deleteid,1);
        // 转换成字符串后写入数据库
        var filedata = JSON.stringify({
            students: students
        });
        fs.writeFile('./db.json', filedata, function (err) {
            if (err) {
                return callback(err);
            }
            callback(null);
        });
    })
};